In the field of computer systems, data is typically stored on magnetic or optical disk drive systems as a series of binary bits. A "head" is used to read and write these bits off and onto a circular data disk. In the present invention, a head refers to any suitable means for either accessing data from or storing data onto a storage medium (e.g., a magnetic transducer for magnetic disk drives, a lens assembly for optical disk drives, etc.). The circular disk is rotated about a spindle.
A servomechanism is used to locate the head in reference to fixed radial locations over the disk surface. The servomechanism is also used to reposition the head from one radial location to another location. Thus, as the head is sequentially moved radially across the spinning data disk, a number of concentric or spiral rings are described. These rings, on the surfaces of which binary bits are recorded, are referred to as "tracks".
When the computer directs the disk drive to position the head on a track different from the track wherein the head is presently positioned, this is known as a "seek". Typically, the user or the computer program reads from or writes onto the disk a number of times per operation. In addition, data is frequently written onto these tracks in a random manner. Thus, a number of seeks are often required for each disk access. Since data cannot be written onto nor read from the disk during the period of the seek, it is important that the seek be completed as rapidly and efficiently as possible.
One common practice is to manufacture disks so that they are preformatted with embedded servo information. Each track is divided into sectors which contain unique header addresses. Thus, as the head is positioned over a particular sector, the disk drive can read this address to determine the current position of the head.
It is possible that the seek can be accomplished by moving the head and reading each preformatted sector address as they are encountered, in order to determine whether the head has reached the destination track. However, one major disadvantage with this seek method is that it requires a relatively long period of time for reading the header data and comparing it with the destination track number to determine whether the seek has been completed.
In the prior art, a faster seek scheme involves applying maximum acceleration to the head for an initial period of time until the seek's approximate midway point is reached and then applying maximum deceleration. This is known as open-loop operation because the head position information is not looped back to the disk drive system. By operating the disk drive servo in this type of open-loop configuration, the head is positioned close to the desired track relatively quickly.
The disadvantage is that while seeking with the tracking servo loop open, the disk drive may lose its exact location in reference to the disk's track number. Thus, towards the end of the seek, the disk drive must access the disk to re-establish the position servoing. In essence, the servo loop must be reclosed, which takes time. Based on the information read from the preformatted sector address, the head is moved with the position loop closed, until the desired track is reached.
In short, the major part of the prior art seek scheme is done as a calculated guess--the exact position is then determined, and the head is finally repositioned to the correct track in reference thereof. Even though this seek scheme is relatively quick, it requires two stages. Thus, what is needed is a direct single stage seek scheme wherein the servo positioning loop is kept closed throughout the entire seek, so that the location of the read/write head is known at all times without having to constantly check the embedded sector addresses. Thereby, the destination track can be arrived at precisely without any overshoot or undershoot.
In the prior art, the position of the head was determined by determining its initial position and counting the number of tracks which had been crossed. However, with the prior art approach, the track crossing information is read off the disk. The problem is that the track crossing signal is typically discontinuous due to noise, defects inherent in the disk itself, and errors caused by the preformatted sectors. Consequently, these discontinuities often led to erroneous track crossing readings so that the position of the head was often incorrect. This problem is exacerbated in optical disk drive systems. In optical disk drive systems, the amplitude of the track crossing signal is relatively small and tends to fluctuate, depending on the focus of the light beam. Thus, in prior art optical disk drive seek methods, the track crossing signal is unreliable.
Another disadvantage with the prior art seek method is the manner by which seek profiles are implemented. A seek profile describes the trajectory of the head. FIG. 1 shows a profile for a typical seek. Typically, a profile defines the magnitude of the velocity 10 or acceleration 11 of the head as a function of time. For example, for a 100 track seek, the head would be subjected to a high constant rate of acceleration until the approximate halfway point is reached. In the example, this corresponds to 50 tracks. The time for this is denoted by t.sub.1. With constant acceleration, the velocity 10 increases linearly. Next, the head is decelerated for a specified amount of time (from t.sub.1 to t.sub.5). The deceleration occurs in numerous steps (t.sub.2 -t.sub.5). The deceleration occurs in steps in order to minimize the mechanical resonances of the armset holding the head. The slope of velocity 10 decreases correspondingly. The velocity decreases until the head comes to a stop at t.sub.5. The head should have been moved approximately 100 tracks and should now be close to the destination track.
The velocities, accelerations, times, etc. for a given profile are predetermined based on mathematical calculations. For each seek of different length, there exists a corresponding profile. These profiles are typically stored in look-up tables which are burned into Read Only Memory (ROM) chip. For each seek, the corresponding profile must be looked up and followed. As such, one disadvantage with this scheme is that it is inflexible and requires storing an extensive look-up table. What is needed is a seek scheme having the capability of following various profiles simply by changing a few lines of software code.
Furthermore, prior art seek methods are typically limited to a dynamic range of plus-or-minus half a track. A servo position error of greater than half a track on either side of track center will typically cause the seek to fail. The reason for this failure is that the next track cycle has already started. Given that a track width can be as thin as 1.5 .mu.m, it does not take much disturbance to cause the seek to fall outside this half track dynamic range.